/*
 * Copyright (c) 2012 Tomas Shestakov. <http://code.google.com/p/jmmo/>
 */

package jmmo.engine.property

trait AlterableObservable extends Alterable with Observable

trait AlterableObservableValue[A] extends AlterableValue[A] with ObservableValue[A]

trait AlterableObservableContainer extends AlterableContainer with ObservableContainer {

  def observable(ids: Identifier*): Option[AlterableObservable]

  def observables: Iterable[AlterableObservable]

  def alterable(ids: Identifier*): Option[AlterableObservable]

  def alterables: Iterable[AlterableObservable]
}
